/**
 * 
 */
package ar.edu.utn.frgp.banco.service.impl;

import java.math.BigDecimal;

import ar.edu.utn.frgp.banco.dao.CuentaDao;
import ar.edu.utn.frgp.banco.dao.impl.CuentasDaoImpl;
import ar.edu.utn.frgp.banco.domain.Cuenta;
import ar.edu.utn.frgp.banco.exceptions.DataAccessException;
import ar.edu.utn.frgp.banco.service.OperacionesService;

/**
 * @author gvolpe
 * @since 25/04/2012 13:57:35
 */
public class OperacionesServiceImpl implements OperacionesService {
	
	private CuentaDao cuentaDAO;
	
	
	
	public OperacionesServiceImpl(){
		cuentaDAO = new CuentasDaoImpl();
	}

	@Override
	public boolean extraerDinero(BigDecimal monto, Cuenta cuenta) {
		// TODO Auto-generated method stub
		
		if (cuenta.getSaldo() != null){
			
			double saldo = cuenta.getSaldo().doubleValue();
			double descubierto = cuenta.getDescubierto().doubleValue();
			
			double montoASacar = monto.doubleValue();
			
			if ( montoASacar < saldo + descubierto){
				
				saldo = saldo - montoASacar;
				
				cuenta.setSaldo(new BigDecimal(saldo));
				
				try {
					cuentaDAO.updateSaldos(cuenta);
				} catch (DataAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			
		}
		
		
		return false;
	}

	@Override
	public boolean depositarDinero(BigDecimal monto, long idCuenta) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean transferirDinero(BigDecimal monto, long idOrigen,
			long idDestino) {
		// TODO Auto-generated method stub
		return false;
	}

	
	
}
